#ifndef MEMBERACCOUNT_H
#define	MEMBERACCOUNT_H

#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<cstring>
#include<vector>
#include<cstdlib>
#include<iomanip>
#include"miscFunction.h"

using namespace std;

class HotelItem;

class MemberAccount
{   
    friend istream& operator>>(istream&, MemberAccount&);
    friend ostream& operator<<(ostream&, MemberAccount&);
    
    public:
    
        MemberAccount();
        MemberAccount(string,string,string,int);
        ~MemberAccount();
        MemberAccount(void*);
    
        string getMemberID();
        string getMemberName();
        string getMemberPassword();
        int getRewardPoints();
        bool getAuthenticate();
        string getType();
        vector<string> getReviewGrantedFor();
        vector<string> getReviewRequestedFor();
    
        void setMemberID(string);
        void setMemberName(string);
        void setMemberPassword(string);
        void setRewardPoints(int);
        void setAuthenticate(bool);
        void setType(string);
        void setReviewGrantedFor(vector<string>);
        void setReviewRequestedFor(vector<string>);   
        
        bool operator==(MemberAccount&);
        void operator=(const MemberAccount&);
        
   // protected:
        
        void searchHotel();
        void viewPermitedHotel();
        void createHotelReview();
        void requestReviewPermission();
        void viewHotelReview();
        void viewHotelItem(string);
        
    protected:
    
        string memberID;
        string memberName;
        string memberPassword;
        vector<string> reviewGrantedFor;
        vector<string> reviewRequestedFor;        
        int rewardsPoints;
        string type;
        bool authenticate;
};

#endif	/* MEMBERACCOUNT_H */

